﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BeanboxSoftware.BeanMap
{
  public class Tuple<K1>
  {
    public K1 Item1 { get; set; }
  }
  public class Tuple<K1, K2> : Tuple<K1>
  {
    public K2 Item2 { get; set; }
  }
  public class Tuple<K1, K2, K3> : Tuple<K1, K2>
  {
    public K3 Item3 { get; set; }
  }

  public static class Tuple
  {
    public static Tuple<K1> Create<K1>(K1 k1)
    {
      return new Tuple<K1> { Item1 = k1 };
    }
    public static Tuple<K1, K2> Create<K1, K2>(K1 k1, K2 k2)
    {
      return new Tuple<K1, K2> { Item1 = k1, Item2 = k2 };
    }
    public static Tuple<K1, K2, K3> Create<K1, K2, K3>(K1 k1, K2 k2, K3 k3)
    {
      return new Tuple<K1, K2, K3> { Item1 = k1, Item2 = k2, Item3 = k3 };
    }
  }
}
